import {cloneDeep} from 'lodash-es';

/**
 * 深度克隆数据。
 *
 * 这个函数使用 Lodash 的 `cloneDeep` 方法来创建数据的深度副本。
 * 适用于对象、数组及其他复杂数据结构的克隆操作。
 *
 * @template T - 要克隆的数据的类型。
 * @param {T} data - 需要克隆的数据。
 * @returns {T} 返回深度克隆的数据副本。
 *
 * @example
 * // 克隆对象
 * const originalObject = { key: 'value' };
 * const clonedObject = cloneData(originalObject);
 * console.log(clonedObject); // { key: 'value' }
 *
 * @example
 * // 克隆数组
 * const originalArray = [1, 2, 3];
 * const clonedArray = cloneData(originalArray);
 * console.log(clonedArray); // [1, 2, 3]
 *
 * @example
 * // 克隆嵌套对象
 * const nestedObject = { a: { b: { c: 'value' } } };
 * const clonedNestedObject = cloneData(nestedObject);
 * console.log(clonedNestedObject); // { a: { b: { c: 'value' } } }
 */
export function cloneData<T>(data: T): T {
  return cloneDeep(data);
}

export default cloneData;
